デバイス周辺でのインタラクションのための、これまでにないきめ細かい指追跡ソリューションである FingerIO を紹介する。FingerIO は、指にセンサーを装着する必要がなく、指とデバイスの間に遮蔽物があっても機能する。我々は、デバイスをアクティブソナーシステムに変換し、聞こえない音信号を送信してマイクで指のエコーを追跡することでこれを実現する。1センチメートル未満の追跡精度を実現するために、無線通信で一般的に使用される直交周波数分割多重方式(OFDM)と呼ばれる変調技術を使用する革新的なアプローチを紹介する。我々の評価では、fingerIO は Samsung Galaxy S4 の内蔵マイクとスピーカーを使用して、平均精度 \(8mm\) で2D指追跡を実現できることが示されている。また、電話がポケットの中にある場合でも、デバイスの周りの微妙な指の動きを追跡する。最後に、スマートウォッチ形状の Finger IO デバイスのプロトタイプを作成し、デバイスの両側の \(0.5×0.25m^2\) の領域にインタラクションスペースを拡張でき、指から完全に遮蔽されている場合でも機能することを示す。
図 1: FingerIO のアプリケーション。a) あらゆる表面を書き込みインターフェイスに変換する。b) スマートウォッチ形状デバイスに新しいインターフェイスを提供する。c) ポケットの中の電話でのジェスチャー操作を可能にする。d) 時計が隠れている場合でも動作する。
本稿では、以下の問いについて考察する。デバイス上でのユーザーの指の動きを追跡できるか、また、指同士が遮蔽されている場合でも追跡できるか。肯定的な答えが得られれば、ユーザーはより表現力豊かなインタラクションが可能になり、手が遮られることなく画面を最大限に活用できるだけでなく、新しいインタラクションシナリオも実現できる。例えば、ユーザーは指をペンのように使って、スマートフォンよりもはるかに広い面積に入力できる。また、スマートフォンがポケットの中にあっても、デバイス上で微妙な指の動きを追跡できる。このような機能は、スマートウォッチなどの小型デバイスにも役立つだろう。これらのデバイスは、指が完全に遮蔽されている場合や、スマートウォッチがインタラクション面とは異なる平面にある場合でも、ユーザーの指を追跡できる。しかし、既存の指追跡ソリューションでは、指にセンサーを取り付けるか [21, 40, 10, 12]、デバイスにカメラや赤外線センサーを取り付けるかのいずれかである [9, 22, 23]。前者のアプローチは面倒であり、後者は遮蔽には対応していない。
指にセンサーを装着する必要がなく、指とデバイスの間に遮蔽があっても動作する、きめ細かな指追跡システムである FingerIO を紹介する。FingerIO は既存のスマートフォンの周囲で指の動きを追跡し、平均 8mm の 2D 追跡精度を実現する。また、スマートフォンがポケットの中にある場合でも、デバイス周囲の微妙な指の動きを追跡する。FingerIO を用いて、指を追跡しながら、デバイスの両側に 0.5×0.25m² の領域までインタラクション空間を拡張できるスマートウォッチ型のデバイスも試作した。さらに、指が完全に遮蔽されていても、このスマートウォッチは指の追跡を継続できる。
我々の鍵となる洞察は、モバイルデバイス(例:スマートフォン)をアクティブソナーシステムに変えることである。高レベルでは、デバイスのスピーカーから人の耳には聞こえない(18~20 kHz)音波を送信する。これらの信号は指で反射され、デバイスのマイクでエコーとして記録される。指の動きは、複数のマイクへのエコーの到着時刻に変化をもたらす。これらのエコーの開始時刻を追跡することで、FingerIO は指の位置を継続的に追跡する。しかし、指からのエコーにはノイズが多く含まれるため、他のすべての反射音がある中で、エコーが受信された正確な時刻を推定することは困難である。この課題を以下のように理解できる、今日のモバイルデバイスのマイクのサンプリングレート(48 kHz)である[27]。空気中の音速を考えると、エコーの開始点を推定する際にわずか3~4サンプルの誤差が生じるだけで、各マイクからの推定距離に 2.1~2.8cmの誤差が生じる。指の位置は複数のマイクからの距離を計算して決定されるため、指の追跡誤差はさらに大きくなる。さらに、モバイルデバイスのスピーカーとマイクは通常独立して動作し、正確に同時にサンプリングを行うことはない。その結果、サンプリングのオフセットが追加され、追跡誤差がさらに増大する。
FingerIOは、無線通信の知見を借用することで、上記の技術的課題に対処する。無線システムでは、送信機と受信機は同期しておらず、同時にサンプリングは行わない。しかし、無線受信機は、送信された情報をデコードするために、送信ごとにサンプリングオフセットを推定するように設計されている。現代の無線システムでは、この目的を達成するために、直交周波数分割多重化(OFDM)と呼ばれる変調技術が使用されている。これに着想を得て、FingerIO はOFDM を用いて正確な指追跡を実現する。高レベルでは、N個のランダムビットの FFT を計算し、N個のサンプルを生成することで、18~20kHzのOFDMシンボルを作成する。次に、図2に示すように、S個のサンプルからなる巡回サフィックスを計算し、スピーカーから送信する。巡回サフィックスを備えた OFDM の重要な特性は、シンボルの先頭を識別する際のサンプル誤差が、周波数領域における位相変化に線形に変換されることである。これらの変化は、FFTを用いてマイクロフォンで抽出できる。例えば、Eサンプルの誤差は、FFT出力において位相が0から\(2E\pi\)まで直線的に増加することを意味する。さらに、マイクロフォンとスピーカー間のサンプリングドリフトによって発生する分数サンプリング誤差も、FFT出力において同様の位相変化をもたらす。これを利用して、FingerIO はサンプリング誤差を補正し、きめ細かい指の追跡を実現する。
図2:OFDM信号の構造。OFDMサンプルの最初のSサンプルが末尾に追加され、巡回サフィックスが作成される。オフセットEから始まる信号のNポイントFFTを実行すると、巡回サフィックスの一部が含まれ、位相差が生じる。
アクティブソナーは、粗いレベルのジェスチャ認識を行うために提案されてきたが[15, 11]、既存のデバイス上できめ細かな指追跡を実現するためにこれを用いた試みはこれまでに知られていない。したがって、我々の貢献は以下の通りである。
従来の研究は 3 つの主要な領域に分かれている。
●近接デバイスインタラクション
この分野における先行研究は、人体の計測を必要とするものと視覚ベースのシステムとに大別できる。iRing [28] は、赤外線センサーを用いて指の回転、曲げ、外力を認識した。LightRing [21] は、赤外線近接センサーと1軸ジャイロスコープで構成されたリング型のデバイスを設計し、それぞれ指の屈曲と回転を測定した。Magic Finger [40] は、光学式マウスセンサーとマイクロRGBカメラを用いて触覚と接触面の質感を感知する指装着型デバイスを設計した。Fingerpad [10] は、磁気トラッキングを用いて人差し指の先端をタッチパッドとして使用する爪装着型デバイスである。uTrack [12] は、磁気センシングを用いた3D入力システムを実現するために、指の甲に磁力計、親指の甲に磁石を装着することを提案している。
Digits [22] や SideSight [9] などのシステムは、指にセンサーを装着する必要がなく、視覚/赤外線センサーを使用するため、遮蔽物の影響をうけない。具体的には、Digits [22] は手首に装着した 3D 赤外線カメラを使用して、ユーザーの手の完全なポーズを復元する。SideSight [9] は、モバイルデバイス (スマートフォンなど) の側面に赤外線近接センサーのアレイを装着し、センサーの視線内にある指の存在と位置を検出する。Hover flow [23] は、携帯電話の端に沿って配置された赤外線センサーのアレイを使用して、手のジェスチャーを検出する。[35] は、携帯電話の内蔵カメラを使用して、空中でのジェスチャーとカメラの視野内にある手の部分の追跡を検出する。[41] は、携帯電話のカメラに全方向ミラーを取り付けて視野を広げる。これらのシステムとは対照的に、FingerIO は、ほとんどのモバイルデバイスに搭載されているマイクとスピーカーを活用して、デバイス近傍の指の動きを追跡できるアクティブソナーシステムを設計する。さらに、FingerIO は音響信号を使用するため、指が隠れている場合でも動作する。
最後に、PocketTouch [34] は、独自の静電容量式センシングハードウェアを用いて、布地越しの指の動きを検出する。一方、FingerIO は、既存のスマートフォンを用いて、デバイスに触れることなく、ポケット越しの微妙な指の動きを検知できる。
●アクティブ音響位置特定
Cricket [29]、Doplink [6]、Spartacus [37]、Shake and Walk [17] などのデバイス位置特定システムは、音響伝送を用いてデバイスの位置を特定し、その動きの方向を決定する。AAmouse [42] は、ドップラーシフトを利用して、室内のアンカーデバイスを用いて携帯電話の位置を追跡する。Mimio [4] などのホワイトボード技術は、超音波と赤外線を備えたアクティブスタイラスを使用し、ボードの角に設置されたアンカーデバイスを用いて位置を特定する。一方、FingerIOは、既存のデバイスを用いて計測機器を装着していない指を追跡する、デバイスフリーの位置特定ソリューションである。これは、OFDMの特性を利用して実現される。OFDMは、マルチパスに対する耐性があるため、無線通信やデバイス位置特定システム [19, 20] で使用されているが、指の追跡に使用した先行研究は知られていない。
SoundWave [15] は、音響伝送のドップラーシフトを利用して、デバイスに手を近づけたり遠ざけたりするジェスチャーを認識する。Airlink [11] とSurfacelink [13] は、それぞれドップラーシフトと表面実装型圧電センサーを用いて、一方のデバイスからもう一方のデバイスに向かって手を振るジェスチャーを検出する。これらの設計は、事前に定義された手と腕のジェスチャーのセットに焦点を当てており、指の追跡には対応していない。最後に、ApneaApp [27] は、携帯電話からの聞こえない伝送のFMCW反射を用いて、睡眠環境における周期的な呼吸運動を追跡する。
Chirp Microsystems [3] は、7つのトランスデューサーアレイを用いて到来角測定を行い、15度の角度分解能を実現する、217kHzで動作するオンチップ超音波距離計を設計している [31]。主な目的は、カメラの消費電力を削減し、代わりに超音波設計を使用することであった。我々のアプローチは、3つの重要な点でこれと異なる。まず、1~2個のマイクを搭載した既存のデバイスを使用し、カスタムチップは不要である。次に、OFDMを活用し、わずか2kHzの帯域幅でセンチメートルレベルの位置特定を実現できることを示している。最後に、これらのオンチップ設計の性能は指追跡では評価されていないが、さまざまな指追跡アプリケーションに我々の設計を適用し、多くの興味深いインタラクションシナリオを実現できることを示している。
●受動音響定位
[38, 24]は、キーボードをクリックしたときに発生する可聴音を利用して、ユーザーが入力したキーを盗聴する。[33]は、圧電衝撃センサーを用いて材料中の音の伝播を感知することで、固体アルミニウムおよびガラス表面のタップの位置を特定する。Toffee [39]は、振動音響圧電センサーを用いて、ユーザーがテーブルをタップしたときに伝播する可聴音と振動波の方向を特定する。ノートパソコンとスマートフォンの角にそれぞれ4つのセンサーを設置し、平均4.3度と18.3度の角度分解能を実現する。さらに最近では、[8]は、表面に取り付けられた接触型マイクを用いて、タッチ、ノック、スワイプなどのさまざまな衝撃イベントを区別している。この研究とは対照的に、FingerIO はアクティブソナーアプローチを用いて、非可聴信号を送信し、表面上および空中の両方でセンチメートルレベルの指追跡を実現する。
RFベースのジェスチャーシステム。
WiSee [32]、AllSee [18]、SideSwipe [43] はそれぞれWi-Fi、テレビ、携帯電話の通信を用いて、大まかな手、腕、脚のジェスチャーを認識する。WiTrack [5] は、カスタムレーダー通信を用いて指差しジェスチャーを検出する。WiDraw [36] は、ネットワーク内の20~30台の他のWi-Fiデバイスからの通信を用いて、Wi-Fiデバイスの近傍における腕の動きを追跡する。Googleは、Soliプロジェクトが60GHzレーダーを用いて微妙な指のジェスチャーを認識することを検討していると報告している [14]。これらのアプローチはいずれもスマートフォンでは実証されておらず、カスタムセンサーハードウェアが必要である。また、RF信号は光速で伝播するため、1センチメートルの解像度を得るにはギガヘルツの帯域幅の処理が必要になるという理由から、本稿で紹介するアクティブソナーアプローチは、より魅力的であると考えている。対照的に、音速ははるかに低いため、48kHzではfingerIOはセンチメートルレベルの精度を達成できる。さらに、我々のアプローチでは、既存のモバイルデバイスに既に搭載されているマイクとスピーカーを使用するため、導入のハードルははるかに低くなる。
FingerIO は、モバイルデバイスをアクティブソナーシステムに変換することで、センチメートルレベルの指追跡を実現する。高レベルでは、デバイスのスピーカーから18~20KHzの周波数範囲の不可聴音信号を送信する。これらの信号は環境内のすべての物体で反射され、マイクによってエコーとして記録される。ユーザーが指を動かすと、対応するエコーの到着時間が変化する。ある瞬間から別の瞬間までのエコープロファイルを比較することで、動いている指に対応するエコーを抽出できる。前述のように、これらのエコーにはノイズが多いため、高精度な指追跡を実現するためには、エコーの開始点を正確に特定することが課題となる。FingerIOは、この目標を実現するためにOFDMと呼ばれる変調技術を活用する。
このセクションの残りの部分では、まずOFDMの特性について説明する。次に、18~20kHzの範囲でスピーカーを使用してOFDM伝送を生成する方法について説明する。次に、FingerIOがOFDMを使用して、移動する指と単一のマイクとの距離を測定する方法を示す。最後に、2つのマイクを使用して2Dトラッキングを実現する方法について説明する。
直交周波数分割多重方式(OFDM)は、Wi-FiやLTEを含む現代の無線通信システムで一般的に使用されている変調方式である。このセクションでは、設計に関連するOFDMの特性に焦点を当てる。OFDMの詳細については、[7, 16, 30]を参照。OFDMは帯域幅を直交サブキャリアに分割し、各サブキャリアでデータを独立して送信する。例えば、Wi-Fiでは、20MHzの帯域幅が、それぞれ312.5kHzの幅を持つ64のサブキャリアに分割される。データは、これらの64個のサブキャリアのそれぞれで送信される。これを実現するために、OFDMはフーリエ変換を使用する。帯域幅をN個のサブキャリアに分割し、n番目のサブキャリアでビットXnのデータを送信するものとする。 OFDMは、これらのデータビットに対して逆高速フーリエ変換(IFFT)を実行することで、送信機で送信される時間領域サンプルを生成する。つまり、 \[ \mathbf x_k=\sum_{n=0}^{N-1} \mathbf X_n e^{i2\pi kn/N} k=0\;to\;N-1 \] これによりN個の時間領域サンプル\(x_k\)が生成され、送信機から送信される。理想的な受信機は、これらの時間領域サンプルを受信し、高速フーリエ変換(FFT)を実行してデータビットを復元する。つまり、 \[ \mathbf X_n=\sum_{k=0}^{N-1} \mathbf x_k e^{-i2\pi kn/N} n=\;to\;N-1 \] 実際には、受信機は完全に同期していないため、このシンボルの正確な開始位置を把握できない。この問題に対処するため、送信機は図2に示すように、最初のS個の時間領域サンプルの繰り返しである巡回サフィックスを送信する。これがなぜ役立つのかを理解するには、受信機がOFDMシンボルの開始位置を推定する際にEサンプルの誤差があるとする。この誤差を考慮すると、図に示すように、受信機はEだけオフセットされたN個の時間領域サンプルに対してFFTを実行する。巡回サフィックスを使用しているため、これらの新しい時間領域サンプルは\(x_{(k+E)\,mod\,N}\)と表すことができる。受信機がこれらのサンプルに対してFFTを実行すると、次のようになる。 \[ \begin{align} \mathbf X_n^{\mathbf E} &=\sum_{k=0}^{N-1} \mathbf x_{(k+E)\,mod\,N} e^{-i2\pi kn/N} \\ &=\mathbf X_n e^{i2\pi En/N} \end{align} \]
新しい周波数領域データは元のデータと同じだが、シンボルの開始位置 (E) の推定誤差に依存する位相が追加されていることがわかる。また、図3に示すように、サブキャリア番号nとともに線形に増加する。例えば、1サンプルの誤差があると、サブキャリア全体で位相は0から\(2\pi\)まで線形に増加する。より一般的には、Eサンプルの誤差があると、N個のOFDMサブキャリア全体で位相は0から\(2E\pi\)まで増加する。
図3:サンプルエラーによるOFDM位相変化。巡回サフィックスは、OFDMシンボルの開始位置がEサンプル分誤って推定された場合、OFDMサブキャリア全体で\(2E\pi\)の位相変化をもたらす。この位相変化は、サンプルエラーを補正し、システムの精度を向上させるために使用できる。
要約すると、受信機が送信されたデータビット\(\mathbf X_n\)を知っていれば、OFDMシンボルの開始位置を推定する際の誤差Eを計算できる。さらに、上記の解析は送信機と受信機の間にわずかな時間オフセットがある場合でも成立するため、オフセットを推定できる。我々はこのOFDMの特性を設計に活用し、センチメートルレベルの指追跡精度を実現している。
FingerIOは、18~20kHzの非可聴周波数範囲でOFDM信号を生成し、デバイスのスピーカーで再生する。しかし、音響OFDMシステムの構築には、2つの重要な注意点がある。i) 音響デバイスは、搬送周波数の生成と送信に発振器を使用しない。これは、48kHzのオーディオサンプリングレートで、一般的なスピーカーとマイクの周波数範囲全体をカバーできるためである。ii) スピーカーへの入力は16ビットの実数であり、IFFTによって生成された複素数を送信できない。そのため、FingerIO はキャリアレスの実数値OFDMシンボルを生成する。これを実現するために、48kHzのサンプリングレートを前提として、まず動作周波数0~24kHzを、それぞれ375Hzの幅を持つ64個のサブキャリアに分割する。18~20kHzの非可聴周波数範囲でのみ動作させたいため、この範囲外のサブキャリアはゼロに設定する。残りの部分については、各サブキャリアを+1または-1に設定する。次に、IFFTを計算し、64サンプルの複素時間領域信号xkを生成する。これらの複素数を実数値に変換するために、これらの複素数の実部を計算する。具体的には、次の変換を使用する。 \[ real_k=|x_k|\cos(\angle \mathbf x_k) \] ここで、\(|\cdot|\) と \(\angle\) は複素数の振幅と位相を表す。これらの64個の実数値は、スピーカーから送信される実数値OFDMシンボルを形成する。これらの値の最初の20個を付加して巡回サフィックスを作成し、図4に示すように、スピーカーから繰り返し再生される。
図4:スピーカーにおける FingerIO の送信。OFDMシンボルと巡回サフィックスの84サンプルに続いて、200サンプルの無音区間が続く。この無音区間は、デバイスから1m以内にあるすべての物体からのエコーを受信するのに十分な長さである。上記の送信において48kHzのサンプルレートを用いると、フレームレートは169Hzとなる。
48kHzのサンプリングレートでは、これらの84サンプル(巡回サフィックスを含む)は1.75msのパルスを形成する。これらのパルスを200サンプル間隔で配置すると、4.17msの間隔になる。この間隔を選んだのは、1mの距離からのすべてのエコーが次のパルスの開始前に到達できるようにするためである。これらのパラメータを考慮すると、OFDMパルスを5.92msごとに送信し、169Hzのフレームレートを実現する。
スピーカーから再生されたOFDM信号は、手を含む様々な物体で反射され、マイクで録音される。これらの反射音が存在する状況下で指からの距離を測定するために、3つの主要なステップを実行する。
ステップ1:エコープロファイルの生成
マイクでの録音を処理する際に、まず、一定距離内にあるすべての物体によって発生する個々のエコーを特定する。そのためには、受信信号と元のOFDMシンボルとの相関処理を行う。この相関処理の出力は、図5に示すエコープロファイルである。このプロファイルの各ピークは、モバイルデバイスの周囲の物体からのエコーの開始点に対応している。これは、反射物体がマイクとスピーカーからどのくらい離れた距離にあるかを示す指標となる。OFDMは優れた自己相関特性を備えているが、ノイズを考慮すると、このステップでは2~3サンプルの誤差で各エコーの開始点を特定できる。これは、距離推定における1.4~2.1cmの誤差に相当する。
図5:2つの時点におけるエコープロファイル。各ピークはエコーの到達を示し、X軸は音速に基づいて計算された対応する距離を示している。指がデバイスのマイクに対して34cmから35cmに移動するにつれて、エコーの到達時間の変化によりピークがシフトしていることがわかる。
ステップ2. 指に対応するエコーの識別
指が動くと、指に対応するエコーの到着時刻が変化する。図5は、マイクから34cmの距離から35cmの距離まで指が移動したときのエコーを示している。図から、指がデバイスの周りを動くにつれてエコーの位置が変化することがわかる。この変化は、連続するOFDMパルスのエコープロファイル間の減算を行うことで識別する。特定の距離値で変化が発生したかどうかを認識するために、閾値ベースのアプローチを使用する。具体的には、エコープロファイル内のすべての距離値にわたる変化が閾値より小さい場合、デバイスの近くで指の動きはなかったと判断される。閾値より大きい変化は、動きに対応するものと判断される。この閾値は、スピーカーから直接聞こえるスピーカー信号の振幅の15%に設定した。この相対閾値を選択するのは、マイクやスピーカーの非線形性によって生じる振幅の変動が誤検知につながらないようにするためである。
成人の指の幅は約1センチメートルである。これは、サンプリングレートが48kHzのアクティブソナーシステムが提供する距離分解能(0.7cm)に近い値である。したがって、指が動くと、指の以前の位置と新しい位置に対応する1~2つのサンプルでのみ変化が起こると予想される。しかし、図5をよく見ると、変化は指の位置だけでなく、その近傍でも起こっていることがわかる。これは、指の動きが、指と同じ軌跡を描く手の動きも引き起こすためである。しかし、我々の設計では、これは、他の小さな手の動きに対応する変化が存在する中で、指の動きによって引き起こされる変化を正しく識別する必要があることを意味する。これは、変化が閾値を超える最も近いサンプルを選択することで実現する。これが機能する理由は、指が手の他の部分と比較して常にマイクに近いためである。さらに、ユーザーが指を使って描くと、最大の変位(つまり変化)は指先で発生する。
ステップ3. マイクからの距離の微調整
最後に、指に対応するエコーを特定したら、OFDMの特性を利用して、このエコーの開始位置を正確に推定する。具体的には、前述のように、OFDMパルスのエコーに対してFFTを実行すると、エコーの開始位置の推定誤差はFFT出力における線形位相シフトに変換される。したがって、大まかに言うと、まずステップ1の相関によって推定されたエコーのおおよその位置から64ポイントのFFTを計算する。次に、FFT出力における線形位相シフトを利用してエコーの開始位置を正確に推定し、マイクからの距離を算出する。マイクは実OFDM信号を受信するため、FFTを実行する前にまず複素信号に変換する必要があることに注意。これを実現するために、負の側波帯抑圧[26]と呼ばれる手法を用いる。この手法では、信号の負の周波数成分をゼロに設定することで複素表現を得る。このプロセス全体を通して、指とマイクの距離推定を微調整することができる。
一般的に、2つの楕円は最大4点で交差するが、この場合は交点は2つしかない。これは、焦点(スピーカー)を共有する2つの楕円は、最大2点でしか交差できないためである[25]。 これらの2点は、2つのマイクを結ぶ線の両側にある。つまり、システムは2つのマイクを結ぶ線に沿って対称であり、2次元位置は携帯電話のどちらの側にも存在する可能性がある。我々の設計上の意味は、ユーザーが2つのマイクを結ぶ線のどちら側で指を動かしているかを区別できないということである。スマートフォンでの使用例では、これはユーザーが常に携帯電話の片側だけに描画できることを意味する。ユーザーは携帯電話と自分自身の間の領域でインタラクションする可能性が高いため、これは許容範囲である。しかし、これはスマートウォッチにとって興味深い設計上の選択肢をもたらす。図6に示すように、2つのマイクを\(H_1\)と\(H_2\)の位置に配置した場合、ユーザーは腕のどちら側でも簡単に操作できまるが、腕に沿って描くことはできない。マイクを垂直位置\(V_1\)と\(V_1\)に配置すると、腕上で操作できるが、手とユーザーの間の不完全な領域で操作することになる。妥当な妥協案としては、マイクを対角位置\(D_1\)と\(D_2\)に配置することが考えられる。別の解決策としては、3つのマイクを使用してこの対称性を排除することである。本稿の実装では、マイクの位置として水平位置\(H_1\)と\(H_2\)を使用している。
図6:スマートウォッチのデザイン上の選択肢。スマートウォッチの反対側にマイクを配置すると、ユーザーが腕やその下の面の一部に描画することが制限される。対角線上にマイクを配置すれば、ユーザーは腕と面の両方で操作できるため、妥当な妥協策となる可能性がある。
2つのマイクを使用することで、我々の設計では任意の2D平面上の動きを追跡できる。異なる平面に沿った動きは、マイクが配置されている平面に投影される。スマートウォッチの場合、ユーザーは手首をインタラクション面(テーブルなど)に置く。ユーザーの腕の幅は約数センチメートルであり、スマートウォッチが配置されている平面はインタラクション面と平行であると近似できることに注意。したがって、インタラクション面に沿った指の動きの投影は、実際の動きの投影と類似している。3つ以上のマイク、例えばディスプレイの近くに2つのマイク、ストラップに沿ってもう1つのマイクを使用すると、上記の近似は不要になる。
2つのプラットフォームで FingerIO プロトタイプを実装した。
市販のスマートフォン
サードパーティ製のAndroidアプリを開発し、Samsung Galaxy S4スマートフォンでテストした。このスマートフォンには、底面にスピーカーが1つ、右上と右下に13.5cm間隔で配置されたマイクが2つ搭載されている。アプリはOFDMシンボルを生成し、既存のAndroid APIであるAudioTrackクラスを使用してスマートフォンのスピーカーから再生する。アプリは、Android組み込みのAudioRecordクラスを使用して、ステレオモードで両方のマイクから同時に録音するように設定されている。
スマートウォッチ形状デバイス
Appleスマートウォッチは、通話やSiriの使用を可能にする効果的なスピーカーとマイクを備えているが[2]、現時点ではスマートフォンほどプログラム可能ではなく、マイクも1つしかない。1Dトラッキングは1つのマイクで実現できるが、2Dトラッキングも実証したいため、図7に示すように、2つのマイクとスピーカーをベルクロストラップ付きの3Dプリントケースに取り付けたシンプルなプロトタイプを構築した。エレクトレットマイク(CMA-4544PF-W、CUI Inc)は、時計ケースの反対側に40 mm間隔で取り付けられている。マイクからの出力は、プリアンプ(MAX4466、Maxim)を搭載したAdafruit開発ボード[1]に接続され、データ収集のためにNI MyDAQに接続される。スマートフォンの実験に使用したのと同じOFDM信号が、スマートフォンの3.5mmヘッドフォンジャックからの入力を受け取り、スピーカーを駆動するD級アンプ(MAX98306、Maxim社製)に供給された。システムはKeysight E3631A DC電源を使用して動作させた。
図7:スマートウォッチ形状のプロトタイプ。このプロトタイプは、2つのマイク(ケースに内蔵)と、ベルクロストラップで固定された3Dプリントケース(図では透明に表示)に取り付けられたスピーカーで構成されている。
20~25歳の10名の参加者(女性5名、男性5名)を募集した。いずれの参加者にも金銭的な利益は提供されなかった。参加者には指を使って好きなパターンを描いてもらい、スマートフォンとスマートウォッチの両方の実装において、様々なシナリオで FingerIO の精度を評価した。参加者は好きなパターンを描けるため、正解データを収集するタッチベースのモバイルデバイスをもう1台用意した。具体的には、FingerIO 対応スマートフォン/スマートウォッチの周囲のさまざまな場所にAndroidスマートフォンを置き、参加者にこのデバイス上で指を使って自由に描いてもらった。参加者がタッチしたピクセル位置を取得するために、Android OnTouchイベントリスナーを使用した。また、draw APIを拡張して、ユーザーの指が移動した軌跡を同時に表示した。OnTouch APIは、位置を画面空間内のピクセルとしてのみ提供する。これを、ピクセル値を1センチメートルあたりのピクセル数でスケーリングすることで、画面上の位置(cm単位)に変換する。次に、この画面の位置を、FingerIO対応スマートウォッチ/スマートフォンと、正解データ収集に使用したスマートフォンとの距離に合わせてオフセットする。
このセクションの残りの部分では、まず、スマートフォンとスマートウォッチのプロトタイプ実装における、視線方向および遮蔽されたシナリオでの2D指トラッキング精度を示す。次に、両プロトタイプにおける FingerIO のインタラクション面(つまり2D範囲)を評価する。最後に、FingerIO による意図しないモーショントラッキングについて考察する。
実験は組織内のオフィスの一つで行う。FingerIO を搭載したスマートフォンを、参加者の目の前に縦向きにテーブルの上に置く。正解データの収集に使用する別のスマートフォンは、FingerIO 対応スマートフォンから 25cm 離れたところに置く。参加者にはシステムのデモンストレーションが示され、実際に操作する機会が与えられる。参加者がセットアップに慣れた後、任意の指の動きからなるパターンを描くように指示される。参加者はパターンを 3 回繰り返すように指示される。参加者は全員、指を使って描画しながら手のひらをテーブルに置く。このすべてのデータを処理し、正解データから平均トラッキング誤差を計算する。指のトラッキング誤差を計算するために、FingerIO によって計算されたトレースに沿った各点と正解データとの平均最小垂直距離を測定する。
図9は、10人の参加者全員の追跡誤差のCDFを示している。この図は、追跡誤差が参加者全員で同様であることを示している。さらに、参加者全員の誤差の中央値は0.8cmだった。これは、FingerIO が実際にセンチメートルレベルの指追跡という目標を達成していることを示している。図8は、参加者が選択した最も複雑なパターンを4つ示している。これらのトレースの黒い線は参加者の真のトレースであり、緑のトレースは FingerIO によって計算され、係数5でサブサンプリングされたものである。図から、2つのトレースが互いに近いこと、そして FingerIO のアルゴリズムがトレースに示されているような複雑な動きも処理できることがわかる。
図8: スマートフォンのセットアップ用に FingerIOを用いて計算されたトレース。図は、4人の参加者について、真のトレース(黒線)とfingerIOによる推定トレース(緑線)の両方を示している。
図9:スマートフォンを用いた指の追跡精度。10人の参加者それぞれにおける2D追跡誤差の累積分布関数(CDF)。全参加者における追跡誤差の中央値は8mm。
上記の一連の実験を、スマートウォッチのプロトタイプを用いて繰り返す。具体的には、参加者にスマートウォッチを腕に装着し、テーブルの上に置いてもらう。参加者は、スマートウォッチから約25cm離れたテーブル上にパターンを描く。前回と同様に、FingerIO のトレースと実際のトレース間の最小垂直距離を測定することで、指の追跡誤差を計算する。
図10は、スマートウォッチ実験における追跡誤差のCDFを示している。スマートフォンの場合と同様に、ほとんどの参加者で追跡誤差は同様である。全参加者の中央値誤差は約1.2cmだった。スマートウォッチのセットアップでは、スマートフォンのシナリオよりも精度が低いことがわかる。これは、指の動きがない場合でも、スマートウォッチのプロトタイプで使用しているマイクでノイズレベルが高くなっているためである。これは、ハードウェアセットアップにおいて、スピーカーとマイク間の分離が不十分であることが原因であると考えられる。分離を改善すれば、原理的には精度をさらに向上させることができる。
図10:スマートウォッチを用いた指の追跡精度。10人の参加者それぞれにおける2D追跡誤差のCDF(累積分布関数)。平均追跡誤差は1.2cmであった。
プロトタイプのスマートウォッチとスマートフォンの周囲で、FingerIO がインタラクション面をどのように拡張するかを評価する。
スマートウォッチのプロトタイプとFingerIOのインタラクション面
参加者はスマートウォッチを装着し、手をテーブルに置くように指示された。図11に示すように、手の前の領域を5×5cmのグリッドに分割した。各グリッド内で、参加者は長さ4cmの直線を2回引いた。各試行において、fingerIOを用いて指の軌跡を計算し、これを実験で収集したグラウンドトゥルースと比較する。指の追跡誤差を計算するために、fingerIOによって計算されたトレース上の各点と正解との平均最小垂直距離を測定する。各グリッド内の平均誤差は、そのグリッド内の試行全体を平均化することで計算する。図は、スマートウォッチとのインタラクション面が腕の片側にある\(0.5×0.25 m^2\)の領域であることを示す。2つのマイクを結ぶ線を境に性能は対称であるため、実際のインタラクション面はこの領域の2倍となる。平均誤差は約1.2cmで、領域全体で均一である。図に示されているグリッドを超えると、距離とともに精度が急激に低下することがわかる。前述のように、ハードウェアプロトタイプではスピーカーとマイクの分離が不十分なため、動きがない場合でもノイズが増加している。これが、スマートフォンの場合よりもわずかに高いトラッキング誤差の原因となっている。
図11:スマートウォッチのインタラクション面。手の周囲の表面を5cm間隔のグリッドに分割し、グリッドごとに平均指追跡精度を計算した。FingerIOは、平均指追跡精度1.2cmで、0.5×0.25 \(m^2\) のインタラクション面を実現する。
スマートフォンとFingerIOのインタラクション空間
スマートウォッチのプロトタイプとは異なり、スマートフォンのスピーカーの出力はAndroid APIで許可されている最大値の15に設定されている。これは、スマートウォッチの実装よりも約10dB高くなっている。さらに、スマートフォンなどの市販デバイスは、マイクとスピーカー間のアイソレーションが優れている。そこで次に、市販のスマートフォンを使用してFingerIOのインタラクション空間を評価する。これを測定するには、スマートフォンをテーブルに置き、スマートフォンの周囲を10×10cmのグリッドに分割する。良好なアイソレーションと高い送信電力で最大のインタラクション面積がどの程度になるかを確認したいため、スマートフォンの画面を下に向けて配置する。これにより、スマートフォンの背面にあるスピーカーからの送信がより遠くまで届くようになり、スマートウォッチのプロトタイプのより優れたバージョンを模倣できる。前のシナリオと同じ実験を行い、各グリッド位置でのトラッキング誤差を測定する。図12は、スマートフォンとその周囲のグリッドにおける指のトラッキング精度を示している。この図から、FingerIO がスマートフォンの周囲約0.5m²の領域にインタラクティブ面を拡大していることがわる。この範囲内での平均誤差は1cm未満で、ほぼ均一である。しかし、この距離を超えると誤差は3cmに増加する。さらに、これらの精度はスマートフォンの4辺すべてで同様であり、FingerIO がユーザーからのスマートフォンの向きに関係なく良好なパフォーマンスを発揮できることを示している。インタラクション領域の拡大は、分離の向上と電力の増加により、より広いインタラクション空間とより優れたトラッキング精度を実現できることを示している。ただし、ユーザーがスマートフォンやスマートウォッチを操作している場合、一部のインタラクションアプリケーションでは1メートル未満のトラッキング範囲で十分だと考えている。
図12: スマートフォンとのインタラクション面。デバイスの周囲の表面を10×10cmのグリッドに分割し、グリッドごとに平均追跡精度を計算した。
2 つの特定の遮蔽シナリオを評価した。
ジャケットで覆われたスマートウォッチ
参加者には、スマートウォッチを完全に覆うポリエステル製のジャケットを着用してもらう。追跡誤差を計算するために、前述と同様のセットアップを使用する。参加者にはまず、スマートウォッチを装着し、図13(a)に示すようにテーブルに手を置いてもらう。次に、参加者に指で任意のパターンを描いてもらう。10人の参加者のうち5人を対象にこの実験を行い、各参加者には描いたパターンを3回繰り返すように依頼した。図13(b)は、5人の参加者全体における FingerIO と正解データ間の追跡誤差のCDFを示している。参加者全体の誤差の中央値は1.35 cmだった。これは、遮蔽がない場合の誤差よりもわずかに大きい。これは、遮蔽があっても FingerIO が動作することを示している。
図13:ジャケットに隠れたスマートウォッチ。この図は、スマートウォッチがジャケットに隠れた状態での5人の被験者の2DトラッキングエラーのCDF(累積分布関数)を示している。全被験者のトラッキングエラーの中央値は1.35cmで、スマートウォッチが隠れていない場合の1.2cmと比較して低下している。
ポケットの中のスマートフォン
次に、図14(a)に示すように、ジーンズのポケットにスマートフォンを入れ、背面を外側に向けた状態で実験を行った。参加者のうち5名には、ポケットの前で空中で指をスワイプさせるように指示した。スワイプ動作は、親指を人差し指の上を滑らせる動作である。FingerIOアルゴリズムは、1つのマイクからのデータを処理し、指の移動距離を計算するように設定した。参加者は、スマートフォンに対して任意の角度から上記の指のスワイプ動作を行うことができた。参加者には、指の目立つ線の解像度でのみ指を動かすように依頼した。これが正解データとなる。平均して、参加者は人差し指を約5cm動かした。FingerIO によって推定された距離と真の動きの差として誤差を計算する。図14(b)は、この計算された距離の誤差のCDFを示している。グラフは、全参加者の平均誤差が1cmであることを示している。すべてのケースにおいて、我々のアルゴリズムは指の動きの方向、つまり携帯電話に向かう方向か離れる方向かを正しく識別している。これは、ポケット越しの指の動きの追跡が実現可能であることを示している。
図14:ポケットに入ったスマートフォン。この図は、スマートフォンがポケットに入っているときの5人の被験者の1次元トラッキングエラーのCDFを示している。全被験者のトラッキングエラーの中央値は1cmであるのに対し、スマートフォンがポケットに入っていないときのトラッキングエラーの中央値は8mmである。
FingerIOのようなシステムでは、デバイスが指を追跡する開始時間と終了時間を通知するメカニズムが必要である。これにより、デバイス近傍のランダムな動きが、インタラクションの目的で指の動きと混同されることを防ぐ。これを実現するために、開始および終了動作としてダブルスワイプを導入する。スワイプとは、少なくとも4cmの長さの直線上の指の動きと定義される。ダブルスワイプでは、ユーザーは2つの反対方向へのスワイプ動作を実行する必要がある。これは、距離の値が4cmにわたって直線的に増加し、その後少なくとも4cmにわたって減少することで検出される。デバイスから5cmの範囲内で実行されたダブルスワイプを開始/終了動作と見なす。5cmの範囲を選択したのは、より遠い距離で発生する同様の指の動きが開始/終了動作と混同されないようにするためである。
実験:
この開始/停止動作の有効性を評価するため、10人の参加者に、スマートフォンとスマートウォッチの両方を用いて、デバイスから5cm以内でダブルスワイプ動作を行ってもらった。各ユーザーは両方のデバイスで指の動作を2回実行する。これらの動作ごとに、アルゴリズムが開始/停止動作として識別できなかった場合は、偽陰性とみなす。偽陽性を計算するために、参加者にデバイスから10cm以内で30秒間、ダブルスワイプ以外のランダムパターンを描いてもらう。各ユーザーはダブルスワイプを2回実行した後、参加者全体で合計10分間にわたってダブルスワイプジェスチャーを探す。この期間中にアルゴリズムによって検出された開始/停止動作は、偽陽性とみなされる。
偽陰性(検知漏れ):
参加者がスマートフォンでダブルスワイプの開始/停止動作を実行した 20 回のうち 19 回で、アルゴリズムによって検出された。同様に、スマートウォッチで実行されたときには 20 回のうち 18 回でこの動作が検出された。動作が検出されなかったのは、ダブルスワイプ ジェスチャー中に、参加者が指と一緒に手全体を動かすためである。アルゴリズムは、検出されなかった 3 回の開始/停止動作について、最も近い距離、つまり指の動作のみを追跡するが、参加者は指とは異なる方向に腕全体を強制的に動かした。現在の実装は単一の動作方向しか処理できないため、この点と混同された。ただし、アクティブ ソナー アプローチを使用して複数の同時動作を追跡すれば、このような事態が発生する可能性は低くなる。また、現在の偽陰性率はまだ許容範囲内であり、ユーザーがシステムに慣れるにつれて信頼性が高くなる可能性があることにも留意してもらいたい。
誤検知:
スマートウォッチのプロトタイプでは、10分間の計測中に開始/停止の動きは検出されなかった。つまり、この計測期間中の誤検知数はゼロだった。これは、我々のアルゴリズムがデバイスから狭い範囲内での厳密なダブルスワイプパターンを必要とするためである。一方、スマートフォンでは、10分間の計測中に2回の開始/停止の動きが検出された。データをさらに分析したところ、2回の誤検知は、1人の参加者が両方向に4cmの距離をなぞる波状のパターンを描いたことによるものであることがわかった。これにより、我々のアルゴリズムはこれを開始/停止の動きとして分類した。残りの参加者には誤検知がなかったことから、ダブルスワイプの動きはほとんどのシナリオで十分であると考えている。
FingerIO の最大動作範囲は 1 メートル未満である。これは、周囲の動きの影響を受けないため、重要な利点である。このセクションでは、参加者の指の追跡精度を測定することで、この特性を評価する。別の参加者が周囲にランダムな動きを与えている間に、別の参加者の指の追跡精度を測定する。1 人の被験者が 4 cm の距離の直線を描く実験を行う。FingerIO を実行しているスマートフォンを、指の位置から約 25 cm のところに置く。被験者が指を動かしている間、別の干渉する被験者が最初の被験者に向かって手を振り続ける。2 人目の被験者に対して、2 つの異なる距離で実験を繰り返す。これらの距離値ごとに、指の追跡精度を計算する。
図15は、干渉対象から携帯電話までの距離の関数として、これらの精度をプロットしている。このプロットは、干渉対象が携帯電話から50cm以内にある場合、指の追跡精度が大幅に低下することを示している。これは、ソナーベースの設計における根本的な限界ではない。むしろ、現在のアルゴリズムは単一の動きを追跡するように設計されているためである。原理的には、エコーは各距離ごとに異なる時間に到達するため、複数の距離値から同時に独立した動きを追跡するアルゴリズムを設計することも可能である。しかし、重要な観察結果は、干渉対象までの距離が1メートルを超える場合、指の追跡精度が再び高くなることである。これは、これらの距離では、干渉対象からの動きによる反射が大幅に減衰し、より近い距離で行われた指の動きによるエコーと比較して弱くなるためである。
図15:周囲のランダムな動きへの対応。この図は、環境内に2人目の割り込むユーザーがいた場合の2Dトラッキング誤差を示している。デバイスから50cm以内でより強い動きがあった場合、精度は低下する。しかし、割り込むユーザーが1メートル以上離れている場合は、精度は常に高いままである。
現在の設計の限界と改善の機会について考察する。
3次元動作と不連続的な筆記の追跡
現在の実装では2つのマイクを使用しており、指の動きを3次元的に追跡することはできない。しかし、これは我々のアプローチの根本的な限界ではなく、3つ目のマイクを使用することで解決できる。具体的には、3つのマイクを使用することで3次元空間における指の位置を三角測量し、3次元の指の追跡が可能になる。同様の問題は不連続的な筆記でも発生する。ユーザーは2次元面から指をわずかに離して、面上の異なる点に移動させる可能性がある。2つのマイクのみを使用すると、これは連続的な動作として追跡され、我々のアルゴリズムはこの動作を入力の一部として2次元描画面に投影する。これは、ユーザーがカメラの前で指で描画するカメラベースのシステムでも直面する同様の問題である。検討する価値のある方向性の一つは、異なる面に3つ目のマイクを組み込み(スマートウォッチのセットアップで実現可能)、それを用いてこの3次元動作を識別することである。
複数の同時動作の追跡
本論文では1本の指の追跡に焦点を当てているが、原理的には、提示されたアルゴリズムは、マイクから異なる距離で発生する限り、複数の指からの同時変化を追跡できる。これは、複数の指を同時に動かす必要があるピッチ、ズームアウト、ズームインのジェスチャーの検出に使用できる。また、デバイスの近くにいる他の人の指/体の動きを検出して分離するためにも使用できる。そのためのアルゴリズムは、Google Soliなどのレーダーベースのアプローチに類似していると予想される。これが実際にどの程度うまく機能するかについては、本論文の範囲外である。
FingerIOの消費電力
フル充電のSamsung Galaxy S4で FingerIO を実行すると、約4時間動作する。他の常時接続モバイルジェスチャーセンシング技術と同様に、電力と精度の間にはいくつかのトレードオフがある。例えば、OFDMパルスを5.92ミリ秒ごとに送信するため、フレームレートは169フレーム/秒になる。人間の動きはこのレートでは変化しない可能性が高いため、FingerIO ははるかに低いフレームレートで動作させることができる。さらに、図8に示すように、5分の1にサブサンプリングしても、実際の値に近い値が得られる。これをさらに最適化し、消費電力を削減することは、今後の有意義な方向性である。
移動するデバイスでの指追跡
本論文で開発した指追跡アルゴリズムは、スマートフォンまたはスマートウォッチが静止しているという仮定の下で動作する。デバイスの移動性に対応するため、動作対象デバイスに既に搭載されている加速度計/ジャイロスコープを用いて、アルゴリズムにおける動きを補正することを想定している。直感的には、これは合成開口レーダーシステム(SAR)を模倣するようなものである。このようなアルゴリズムの開発は、今後の課題とする。
指にセンサーを装着する必要がなく、指とデバイスの間に遮蔽物があっても動作する、きめ細かな指追跡を実現する、新たなアクティブソナー設計を紹介した。Samsung Galaxy S4の内蔵スピーカーとマイクを用いて設計を検証し、端末周辺での指追跡を実証した。また、市販のハードウェアを用いて、スマートウォッチ型のデバイスにプロトタイプを構築した。
匿名の査読者の皆様にはフィードバックをいただき、感謝申し上げます。また、ハードウェア設計に関する有益な議論をしてくださったBryce Kellogg氏とVamsi Talla氏にも感謝申し上げます。本研究は、Google Faculty Awardおよび米国国立科学財団(CNS-1420654)の助成を受けて実施されました。